// pages/addBook/addBook.js
const db = wx.cloud.database()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    show: false,
    columns: ['语言、文字', '科幻小说', '哲学、宗教'], //选择器中的值
    bookClass: '',
    bookItem: {},
    tempFilePath: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },
  showPopup() {
    this.setData({
      show: true
    });
  },

  onClose() {
    this.setData({
      show: false
    });
  },
  onConfirm(e) { //选择器右上角的确定，点击确定获取值
    this.setData({
      bookClass: e.detail.value,
      show: false
    })
  },

  async submitNewBook(e) {
    let bookItem = e.detail.value

    // 获取书籍图片的临时路径
    let {
      tempFilePath
    } = this.data

    // 检验用户输入是否非空
    if (bookItem.name.trim() && bookItem.author.trim() && bookItem.price.trim() && bookItem.remaining.trim() && bookItem.introduce.trim() && bookItem.bookClass.trim()) {

      // 向云存储存储照片，并且返回文件id
      let {
        fileID
      } = await wx.cloud.uploadFile({
        cloudPath: `bookImg/${bookItem.bookClass}/${bookItem.name+Number(new Date())}.png`,
        filePath: tempFilePath
      })

      // 为bookItem添加id和imgUrl
      bookItem.id = String(new Date())
      bookItem.imgUrl = fileID
      // 将bookItem的价格和库存转换为数字类型
      bookItem.remaining = Number(bookItem.remaining)
      bookItem.price = Number(bookItem.price)

      // 设置bookItem状态
      this.setData({
        bookItem
      })
      // 将新的数据推送到云端

      // 要向两个数据库添加该书籍，bookItem数据库直接添加就行，但是bookList得修改

      db.collection('bookItem').add({
        data: bookItem
      })

      // bookList先通过class类找到该条数据，向list数组中推入该本书籍信息
      let {
        data
      } = await db.collection('bookList').where({
        class: bookItem.bookClass
      }).get()

      // 调用云函数addBookList(),传入bookItem和_id
      wx.cloud.callFunction({
        name: 'addBookList',
        data: {
          bookItem,
          _id: data[0]._id
        }
      })

      wx.showToast({
        title: '上传成功',
        icon: 'success'
      })

    } else {
      wx.showToast({
        title: '请输入完整信息！',
        icon: 'error'
      })
    }
  },

  // 添加图片 
  async addImg() {
    let {
      tempFilePaths
    } = await wx.chooseImage({
      count: 1,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
    })
    this.setData({
      tempFilePath: tempFilePaths[0]
    })

  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})